"""
- 每行代码，或每个方法要求添加注释（基础不好的同学）

题目内容：

1. ⼀个回合制游戏，有两个英雄，分别以两个类进⾏定义。分别是Timo和Jinx。每个英雄都有 hp 属性和 power属性，hp 代表⾎量，power 代表攻击⼒
2. 每个英雄都有⼀个 fight ⽅法， fight ⽅法需要传⼊“enemy_hp”（敌⼈的⾎量），“enemy_power”（敌⼈的攻击⼒）两个参数。需要计算对打一轮过后双方的最终血量，
英雄最终的⾎量 = 英雄hp属性-敌⼈的攻击⼒enemy_power
敌⼈最终的⾎量 = 敌⼈的⾎量enemy_hp-英雄的power属性

3. 对⽐英雄最终的⾎量和敌⼈最终的⾎量，⾎量剩余多的⼈获胜。如果英雄赢了打印 “英雄获胜”，如果敌⼈赢了，打印“敌⼈获胜”

4. 使用继承、简单工厂方法等各种方式优化你的代码
"""

class hero:
    hero_name = "default"
    hero_hp = 0
    hero_power = 0

    def fight(self,enemy_hp,enemy_power,enemy_name):
        hero_final_hp = self.hero_hp - enemy_power
        enemy_final_hp = enemy_hp-self.hero_power
        if hero_final_hp > enemy_final_hp:
            print(f"{self.hero_name}赢了")
        elif hero_final_hp < enemy_final_hp :
            print(f"{enemy_name}赢了")
        else:
            print("打平了")

class timo(hero):
    hero_name = "Timo"
    hero_hp = 10000
    hero_power = 200

class jinx(hero):
    hero_name = "Jinx"
    hero_hp = 1000
    hero_power = 200

class heroFactory:
    def factory(self,hero_name):
        if str.lower(hero_name) == "jinx":
            return jinx()
        elif  str.lower(hero_name) =="timo":
            return timo()

if __name__ == "__main__":
    hFactory = heroFactory()
    jinx = hFactory.factory("Jinx")
    timo = hFactory.factory("Timo")
    jinx.fight(timo.hero_hp,timo.hero_power,timo.hero_name)